package gate

import (
	"game"
	"login"
	"message"
	"github.com/name5566/leaf/log"
)

const (
	LOGIN_MSG_MIN int = 0
	LOGIN_MSG_MAX int = 999
	GAME_MSG_MIN  int = 1000
)

func init() {
	processor.SetHandler(handleMsg)
}

func handleMsg(msg interface{}, agent interface{}) {
	rpcRequest := msg.(*message.RPCRequest)
	msgID := int(rpcRequest.GetMsgID())
	log.Debug("handleMsg: %v", msgID)

	// 分发给对应的模块处理
	if msgID >= LOGIN_MSG_MIN && msgID <= LOGIN_MSG_MAX {
		// 这些消息是登录消息
		login.RPC.Go(rpcRequest.GetMsgID(), msg, agent)
	} else {
		// 这些消息是游戏逻辑消息
		game.RPC.Go(rpcRequest.GetMsgID(), msg, agent)
	}
}
